package cn.itrigger.util;

import java.io.File;
import java.io.FileFilter;
import java.util.List;

/**
 * @author admin
 * @date 2018/5/17
 **/
public class FileUtil {

    /**
     * 获取文件目录下的所有文件
     * @param directory
     * @param files
     */
    public static void getFiles(File directory, List<File> files) {
        if (!directory.isDirectory()) {
            return;
        }
        File[] listFiles = directory.listFiles();
        if (listFiles.length == 0) {
            return;
        }
        for (File f : listFiles) {
            if (f.isFile()) {
                files.add(f);
            }else if (f.isDirectory()) {
                getFiles(f,files);
            }
        }
    }

    /**
     * 获取文件目录下满足某个条件的所有文件
     * @param directory
     * @param files
     * @param fileFilter
     */
    public static void getFiles(File directory, List<File> files, FileFilter fileFilter) {
        if (directory.isFile()) {
            return;
        }
        File[] listFiles = directory.listFiles(fileFilter);
        if (listFiles.length == 0) {
            return;
        }
        for (File f : listFiles) {
            if (f.isFile()) {
                files.add(f);
            }else if (f.isDirectory()) {
                getFiles(f,files,fileFilter);
            }
        }
    }

    public static void getFiles(String directory, List<File> files) {
        File file = new File(directory);
        if (file.exists()) {
            getFiles(file,files);
        }
    }

    public static void getFiles(String directory, List<File> files,FileFilter fileFilter) {
        File file = new File(directory);
        if (file.exists()) {
            getFiles(file,files,fileFilter);
        }
    }
}
